////https://www.luogu.com.cn/problem/P1194
//
//#include<iostream>
//#include<algorithm>
//using namespace std;
//
//const int M = 510 * 510 + 10;
//struct node
//{
//	int x, y, z;
//}x[M];
//int xi;
//
//int fa[M];
//int a, b;
//
//bool cmp(const node& n1, const node& n2)
//{
//	return n1.z < n2.z;
//}
//
//int find(int x)
//{
//	return fa[x] == x ? x : fa[x] = find(fa[x]);
//}
//
//int num, ret;
//
//void kk()
//{
//	sort(x + 1, x + xi + 1, cmp);
//	for (int i = 1; i < b; i++) fa[i] = i;
//
//	for (int i = 1; i <= xi ; i++)
//	{
//		int fx = find(x[i].x), fy = find(x[i].y);
//		if (fx != fy)
//		{
//			int z = x[i].z;
//			fa[fx] = fy;
//			ret += z;
//			num++;
//		}
//	}
//}
//
//int main()
//{
//	cin >> a >> b;
//	for (int i = 1; i <= b; i++)
//	{
//		for (int j = 1; j <= b; j++)
//		{
//			int z; cin >> z;
//			if (i >= j || z == 0 || z >= a) continue;
//			x[++xi] = { i,j,z };
//		}
//	}
//	kk();
//	cout << ret + (b - num) * a << endl;
//	return 0;
//}